package com.guyaogg.common.exception;

/**
 * 错误码和错误信息定义类
 * <p>
 * 1，错误码定义规则为5为数字
 * <p>
 * 2，前两位表示业务场景，最后三位表示错误码。例如： 1000010 10通用001：系统未知异常
 * <p>
 * 3，维护错误码后需要维护错误描述，将他们定义为枚举形式"错误码列表：
 * <p>
 * 10：通用
 * 001:参数格式校验
 * 002：短信验证码频率过高
 * <p>
 * 11：商品
 * <p>
 * 12：订单
 * <p>
 * 13：购物车
 * <p>
 * 14：物流
 * 15：用户
 * 21：库存
 * @author 顾遥
 */
public enum BizCodeEnum {
    /**
     * 系统未知异常
     */
    UNKNOW_EXCEPTION(10000, "系统未知异常"),

    /**
     * 参数格式校验失败
     */
    VALID_EXCEPTION(10001, "参数格式校验失败"),
    SMS_CODE_EXCEPTION(10002, "短信验证码频率过高"),
    /**
     * 采购单合并失败 purchase
     */
    MERGE_PURCHASE_EXCEPTION(10014, "参数格式校验失败"),
    /**
     * 商品上架出现错误
     */
    PRODUCT_UP_EXCEPTION(11000,"商品上架异常"),
    USER_EXIST_EXCEPTION(15001,"用户名已存在"),
    PHONE_EXIST_EXCEPTION(15002,"手机号已存在"),
    LOGIN_ACCT_PASSWORD_INVALID_EXCEPTION(15003,"账号密码错误"),
    NO_STOCK_EXCEPTION(21000,"商品库存不足");

    private final int code;
    private final String msg;

    BizCodeEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
